// MANUALLY DUMPED [ShaderRegex\ShaderFixes\regex.ini\_Point_Lighting2]
// Minor reflections / specular highlights
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Tue Sep 17 19:46:01 2019
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xyzw        0     NONE   float   xyzw
// SV_Position              0   xyzw        1      POS   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[210], immediateIndexed
dcl_constantbuffer cb1[1], immediateIndexed
dcl_constantbuffer cb2[4], immediateIndexed
dcl_constantbuffer cb3[3069], dynamicIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_sampler s6, mode_default
dcl_sampler s7, mode_default
dcl_sampler s8, mode_default
dcl_sampler s9, mode_default
dcl_sampler s10, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texturecube (float,float,float,float) t6
dcl_resource_texturecube (float,float,float,float) t7
dcl_resource_texturecubearray (float,float,float,float) t8
dcl_resource_texturecubearray (float,float,float,float) t9
dcl_resource_texturecubearray (float,float,float,float) t10
dcl_resource_buffer (uint,uint,uint,uint) t11
dcl_resource_buffer (uint,uint,uint,uint) t12
dcl_resource_buffer (uint,uint,uint,uint) t13
dcl_resource_texture2d (float,float,float,float) t14
dcl_resource_texture2d (uint,uint,uint,uint) t15
dcl_resource_texture2d (float,float,float,float) t16
dcl_input_ps linear noperspective v0.xyzw
dcl_input_ps_siv linear noperspective v1.xy, position
dcl_output o0.xyzw
dcl_temps 25
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
ld_indexable(texture2d)(float,float,float,float) r23.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture1d)(float,float,float,float) r22.xyzw, l(0, 0, 0, 0), t120.xyzw

// mov r0.xy, v0.xy
// mad r0.x, r23.x, r22.w, r0.x
//moves entire screen
sample_l_indexable(texture2d)(float,float,float,float) r0.xyzw, v0.xyxx, t2.xyzw, s2, l(0.000000)
mul r1.xy, v0.xyxx, cb0[140].xyxx
ftou r1.xy, r1.xyxx
mul r0.w, r0.w, l(255.000000)
round_ne r0.w, r0.w
ftou r0.w, r0.w
and r2.x, r0.w, l(15)
ige r2.y, cb0[209].x, l(0)
mov r1.zw, l(0,0,0,0)
ld_indexable(texture2d)(uint,uint,uint,uint) r1.z, r1.xyzw, t15.yzxw
and r1.z, r1.z, cb0[209].x
ine r1.z, r1.z, l(0)
and r1.z, r1.z, r2.y
movc r1.z, r1.z, l(0), r2.x
ine r2.yz, r1.zzzz, l(0, 0, 7, 0)
and r1.w, r2.z, r2.y
if_nz r1.w
//none of these
  sample_l_indexable(texture2d)(float,float,float,float) r2.yzw, v0.xyxx, t1.wxyz, s1, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r3.xyzw, v0.xyxx, t3.xyzw, s3, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r4.xy, v0.xyxx, t4.xyzw, s4, l(0.000000)
  ftou r1.w, cb0[160].x
  iadd r1.x, r1.y, r1.x
  iadd r1.x, r1.w, r1.x
  and r1.x, r1.x, l(1)
  mad r2.yzw, r2.zzwy, l(0.000000, 2.000000, 2.000000, 2.000000), l(0.000000, -1.000000, -1.000000, -1.000000)
  dp3 r1.y, r2.yzwy, r2.yzwy
  rsq r1.y, r1.y
  mul r5.yzw, r1.yyyy, r2.yyzw
  mad r1.w, r3.w, l(16.000000), l(-8.000000)
  exp r1.w, r1.w
  add r1.w, r1.w, l(-0.00390625000)
  and r0.w, r0.w, l(16)
  movc r4.xy, r0.wwww, l(0,0,0,0), r4.xyxx
  ieq r4.zw, r2.xxxx, l(0, 0, 9, 5)
  movc r0.w, r4.z, l(0), r0.x
  mul r2.x, r0.y, l(0.080000)
  mad r3.xyz, -r0.yyyy, l(0.080000, 0.080000, 0.080000, 0.000000), r3.xyzx
  mad r3.xyz, r0.wwww, r3.xyzx, r2.xxxx
  or r0.w, r4.z, r4.w
  lt r2.x, l(0.000000), cb0[164].x
  lt r3.w, l(0.000000), cb0[196].w
  and r2.x, r2.x, r3.w
  movc r1.x, r1.x, l(0), l(1.000000)
  mul r6.xyz, r1.xxxx, r3.xyzx
  movc r6.xyz, r2.xxxx, r6.xyzx, r3.xyzx
  movc r3.xyz, r0.wwww, r6.xyzx, r3.xyzx
  mad r3.xyz, r3.xyzx, cb0[144].wwww, cb0[144].xyzx
//neither of these
  sample_l_indexable(texture2d)(float,float,float,float) r0.w, v0.xyxx, t5.yzwx, s5, l(0.000000)
  sample_l_indexable(texture2d)(float,float,float,float) r1.x, v0.xyxx, t0.xyzw, s0, l(0.000000)
  ge r2.x, r1.x, l(0.875000)
  mad r3.w, r1.x, l(8.000000), l(-7.000000)
  movc r1.x, r2.x, r3.w, r1.x
  mad r2.x, r1.x, cb0[65].x, cb0[65].y
  mad r1.x, r1.x, cb0[65].z, -cb0[65].w
  div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x
  add r1.x, r1.x, r2.x
  mul r4.zw, r1.xxxx, v0.zzzw

//fix here shifts reflection, but doesn't look just right

// add r23.w, r1.x, -r23.y
// mul r23.w, r23.w, r22.w
// mad r4.z, r23.w, -r23.x, r4.z

// mul r23.w, r1.x, r23.x
// mul r23.w, r23.w, r22.w
// add r4.z, -r23.w, r4.z

  mul r6.xyz, r4.wwww, cb0[49].xyzx
  mad r6.xyz, r4.zzzz, cb0[48].xyzx, r6.xyzx
  mad r6.xyz, r1.xxxx, cb0[50].xyzx, r6.xyzx
  add r6.xyz, r6.xyzx, cb0[51].xyzx
// mul r23.w, r6.z, r23.x
// mul r23.w, r23.w, r22.w
// add r6.x, -r23.w, r6.x
// shifts more than just broken highlight
  add r7.xyz, r6.xyzx, -cb0[68].xyzx
  dp3 r2.x, r7.xyzx, r7.xyzx
  rsq r2.x, r2.x
  mul r7.xyz, r2.xxxx, r7.xyzx
  lt r4.zw, l(0.000000, 0.000000, 0.000000, 0.000000), cb1[0].yyyz
  and r2.x, r4.w, r4.z
  if_nz r2.x
    dp3 r2.x, r5.yzwy, r5.yzwy
    sqrt r2.x, r2.x
    ld_indexable(buffer)(uint,uint,uint,uint) r3.w, l(12, 12, 12, 12), t11.yzwx
    ld_indexable(buffer)(uint,uint,uint,uint) r8.y, l(13, 13, 13, 13), t11.yxzw
    ld_indexable(buffer)(uint,uint,uint,uint) r8.z, l(14, 14, 14, 14), t11.yzxw
    ld_indexable(buffer)(uint,uint,uint,uint) r8.w, l(15, 15, 15, 15), t11.yzwx
    ld_indexable(buffer)(uint,uint,uint,uint) r4.w, l(16, 16, 16, 16), t11.yzwx
    ld_indexable(buffer)(uint,uint,uint,uint) r9.y, l(17, 17, 17, 17), t11.yxzw
    ld_indexable(buffer)(uint,uint,uint,uint) r9.z, l(18, 18, 18, 18), t11.yzxw
    ld_indexable(buffer)(uint,uint,uint,uint) r9.w, l(19, 19, 19, 19), t11.yzwx
    ld_indexable(buffer)(uint,uint,uint,uint) r6.w, l(20, 20, 20, 20), t11.yzwx
    ld_indexable(buffer)(uint,uint,uint,uint) r10.y, l(21, 21, 21, 21), t11.yxzw
    ld_indexable(buffer)(uint,uint,uint,uint) r10.z, l(22, 22, 22, 22), t11.yzxw
    ld_indexable(buffer)(uint,uint,uint,uint) r10.w, l(23, 23, 23, 23), t11.yzwx
    ld_indexable(buffer)(uint,uint,uint,uint) r11.x, l(24, 24, 24, 24), t11.xyzw
    ld_indexable(buffer)(uint,uint,uint,uint) r11.y, l(25, 25, 25, 25), t11.yxzw
    ld_indexable(buffer)(uint,uint,uint,uint) r11.z, l(26, 26, 26, 26), t11.yzxw
    ld_indexable(buffer)(uint,uint,uint,uint) r11.w, l(27, 27, 27, 27), t11.yzwx
    ld_indexable(buffer)(uint,uint,uint,uint) r12.x, l(28, 28, 28, 28), t11.xyzw
    ld_indexable(buffer)(uint,uint,uint,uint) r12.y, l(29, 29, 29, 29), t11.yxzw
    ld_indexable(buffer)(uint,uint,uint,uint) r12.z, l(30, 30, 30, 30), t11.yzxw
    ld_indexable(buffer)(uint,uint,uint,uint) r12.w, l(31, 31, 31, 31), t11.yzwx
    ld_indexable(buffer)(uint,uint,uint,uint) r13.x, l(32, 32, 32, 32), t11.xyzw
    ld_indexable(buffer)(uint,uint,uint,uint) r13.y, l(33, 33, 33, 33), t11.yxzw
    ld_indexable(buffer)(uint,uint,uint,uint) r13.z, l(34, 34, 34, 34), t11.yzxw
    ld_indexable(buffer)(uint,uint,uint,uint) r13.w, l(35, 35, 35, 35), t11.yzwx
    ld_indexable(buffer)(uint,uint,uint,uint) r14.x, l(36, 36, 36, 36), t11.xyzw
    ld_indexable(buffer)(uint,uint,uint,uint) r14.y, l(37, 37, 37, 37), t11.yxzw
    ld_indexable(buffer)(uint,uint,uint,uint) r14.z, l(38, 38, 38, 38), t11.yzxw
    mad r8.x, r11.z, l(-0.333333343), r3.w
    mad r9.x, r12.z, l(-0.333333343), r4.w
    mad r10.x, r13.z, l(-0.333333343), r6.w
    mov r5.x, l(1.000000)
    dp4 r8.x, r8.xyzw, r5.xyzw
    dp4 r8.y, r9.xyzw, r5.xyzw
    dp4 r8.z, r10.xyzw, r5.xyzw
    mul r9.xyzw, r5.yzzw, r5.wyzz
    dp4 r10.x, r11.xyzw, r9.xyzw
    dp4 r10.y, r12.xyzw, r9.xyzw
    dp4 r10.z, r13.xyzw, r9.xyzw
    mul r3.w, r5.y, r5.y
    mad r3.w, r5.w, r5.w, -r3.w
    add r8.xyz, r8.xyzx, r10.xyzx
    mad r8.xyz, r14.xyzx, r3.wwww, r8.xyzx
    max r8.xyz, r8.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
    mul r8.xyz, r8.xyzx, cb0[174].zzzz
    dp3 r3.w, r8.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
    mad r1.w, r3.w, r2.x, r1.w
  endif
  dp3 r0.x, -r7.yzxy, r5.yzwy
  add r2.x, r0.x, r0.x
  mad r7.yzw, r2.xxxx, r5.wwyz, r7.xxyz
  mov_sat r0.x, r0.x
  mul r2.x, r0.z, r0.z
  mad r3.w, -r0.z, r0.z, l(1.000000)
  sqrt r4.w, r3.w
  mad r4.w, r0.z, r0.z, r4.w
  mul r3.w, r3.w, r4.w
  mad r2.yzw, -r2.wwyz, r1.yyyy, r7.yyzw
  mad r5.yzw, r3.wwww, r2.yyzw, r5.wwyz
  sample_indexable(texture2d)(float,float,float,float) r8.xyzw, v0.xyxx, t16.xyzw, s10
  and r2.yz, cb0[150].zzzz, l(0, 64, 128, 0)
  movc r9.xyz, r2.yyyy, r8.xyzx, l(0,0,0,0)
  add r9.w, -r8.w, l(1.000000)
  ieq r1.y, r1.z, l(4)
  add r10.xyzw, -r9.xyzw, l(0.000000, 0.000000, 0.000000, 1.000000)
  mad r10.xyzw, r4.xxxx, r10.xyzw, r9.xyzw
  movc r10.xyzw, r1.yyyy, r10.xyzw, r9.xyzw
  add r1.z, r0.w, r0.x
  log r1.z, r1.z
  mul r1.z, r1.z, r2.x
  exp r1.z, r1.z
  add r0.w, r0.w, r1.z
  add_sat r0.w, r0.w, l(-1.000000)
  mul r1.z, r0.w, r10.w
  add r2.xy, v1.xyxx, -cb0[138].xyxx
  ftou r2.xy, r2.xyxx
  mad r1.x, r1.x, cb2[3].x, cb2[3].y
  log r1.x, r1.x
  mul r1.x, r1.x, cb2[3].z
  max r1.x, r1.x, l(0.000000)
  ftou r1.x, r1.x
  iadd r2.w, cb2[1].z, l(-1)
  umin r1.x, r1.x, r2.w
  ushr r2.xy, r2.xyxx, cb2[2].xxxx
  imad r1.x, r1.x, cb2[1].y, r2.y
  imad r1.x, r1.x, cb2[1].x, r2.x
  iadd r1.x, r1.x, cb2[0].w
  ishl r2.x, r1.x, l(1)
  ld_indexable(buffer)(uint,uint,uint,uint) r2.x, r2.xxxx, t12.xyzw
  umin r2.x, r2.x, cb2[0].y
  bfi r1.x, l(31), l(1), r1.x, l(1)
  ld_indexable(buffer)(uint,uint,uint,uint) r1.x, r1.xxxx, t12.xyzw
  if_nz r2.z
    log r2.y, r0.z
    mad r2.y, -r2.y, l(1.200000), l(1.000000)
    add r2.w, cb0[185].z, l(-1.000000)
    add r2.w, -r2.y, r2.w
    mul r11.xyzw, cb0[153].xxxw, l(0.101321183, 0.101321183, 0.101321183, 0.318309873)
    ld_indexable(buffer)(uint,uint,uint,uint) r3.w, l(3, 3, 3, 3), t11.yzwx
    and r9.xyz, cb0[150].zzzz, l(256, 512, 1024, 0)
    ld_indexable(buffer)(uint,uint,uint,uint) r12.x, l(8, 8, 8, 8), t11.xyzw
    ld_indexable(buffer)(uint,uint,uint,uint) r12.y, l(9, 9, 9, 9), t11.yxzw
    ld_indexable(buffer)(uint,uint,uint,uint) r12.z, l(10, 10, 10, 10), t11.yzxw
    mov r5.x, l(0)
    mov r13.xyz, l(0,0,0,0)
    mov r4.w, r1.z
    mov r6.w, l(0)
    mov r8.w, l(1.000000)
    mov r10.w, l(1.000000)
    mov r12.w, l(0)
    loop
      uge r13.w, r12.w, r2.x
      breakc_nz r13.w
      lt r13.w, r4.w, l(0.001000)
      if_nz r13.w
        break
      endif
      iadd r13.w, r1.x, r12.w
      ld_indexable(buffer)(uint,uint,uint,uint) r13.w, r13.wwww, t13.yzwx
      add r14.xyz, r6.xyzx, -cb3[r13.w + 0].xyzx
      dp3 r14.w, r14.xyzx, r14.xyzx
      sqrt r15.x, r14.w
      lt r15.y, r15.x, cb3[r13.w + 0].w
      if_nz r15.y
        lt r15.y, l(0.000000), cb3[r13.w + 341].z
        if_nz r15.y
          ishl r15.y, r13.w, l(2)
          mul r16.xyz, r6.yyyy, cb3[r15.y + 1365].xyzx
          mad r16.xyz, r6.xxxx, cb3[r15.y + 1364].xyzx, r16.xyzx
          mad r16.xyz, r6.zzzz, cb3[r15.y + 1366].xyzx, r16.xyzx
          add r16.xyz, r16.xyzx, cb3[r15.y + 1367].xyzx
	  // mul r23.w, r23.x, r16.z
	  // mad r16.x, r23.w, r22.w, r16.x
          mul r17.xyz, r5.zzzz, cb3[r15.y + 1365].xyzx
          mad r17.xyz, r5.yyyy, cb3[r15.y + 1364].xyzx, r17.xyzx
          mad r15.yzw, r5.wwww, cb3[r15.y + 1366].xxyz, r17.xxyz
	  // mul r23.w, r23.x, r15.w
	  // mad r15.y, r23.w, r22.w, r15.y
          rcp r15.yzw, r15.yyzw
          mad r17.xyz, -r16.xyzx, r15.yzwy, -r15.yzwy
          mad r15.yzw, -r16.xxyz, r15.yyzw, r15.yyzw
          max r15.yzw, r15.yyzw, r17.xxyz
          min r15.z, r15.w, r15.z
          min r15.y, r15.z, r15.y
          mad r15.yzw, r15.yyyy, r5.yyzw, r6.xxyz
          add r17.xyz, cb3[r13.w + 0].xyzx, cb3[r13.w + 682].xyzx
          add r17.xyz, r15.yzwy, -r17.xyzx
          mul r15.y, l(0.700000), cb3[r13.w + 2728].w
          mad r18.xyz, -cb3[r13.w + 2728].wwww, l(0.500000, 0.500000, 0.500000, 0.000000), cb3[r13.w + 2728].xyzx
          mul r19.xyz, r16.xyzx, cb3[r13.w + 2728].xyzx
          lt r20.xyz, r19.xyzx, -r18.xyzx
          mad r21.xyz, r16.xyzx, cb3[r13.w + 2728].xyzx, r18.xyzx
          mov r21.xyz, |r21.xyzx|
          and r20.xyz, r20.xyzx, r21.xyzx
          lt r19.xyz, r18.xyzx, r19.xyzx
          mad r16.xyz, r16.xyzx, cb3[r13.w + 2728].xyzx, -r18.xyzx
          mov r16.xyz, |r16.xyzx|
          and r16.xyz, r16.xyzx, r19.xyzx
          dp3 r15.z, r20.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
          dp3 r15.w, r16.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
          add r15.z, r15.w, r15.z
          div r15.y, l(1.000000, 1.000000, 1.000000, 1.000000), r15.y
          mul_sat r15.y, r15.y, r15.z
          mad r15.z, r15.y, l(-2.000000), l(3.000000)
          mul r15.y, r15.y, r15.y
          mad r16.x, -r15.z, r15.y, l(1.000000)
        else
          div_sat r15.x, r15.x, cb3[r13.w + 0].w
          dp3 r15.y, r5.yzwy, r14.xyzx
          mad r14.w, -cb3[r13.w + 0].w, cb3[r13.w + 0].w, r14.w
          mad r14.w, r15.y, r15.y, -r14.w
          ge r15.z, r14.w, l(0.000000)
          sqrt r14.w, r14.w
          add r14.w, -r15.y, r14.w
          mad r14.xyz, r14.wwww, r5.yzwy, r14.xyzx
          add r14.yzw, r14.xxyz, -cb3[r13.w + 682].xxyz
          mad r15.x, r15.x, l(2.500000), l(-1.500000)
          max r15.x, r15.x, l(0.000000)
          mul r15.y, r15.x, r15.x
          mad r15.x, -r15.x, l(2.000000), l(3.000000)
          mad r14.x, -r15.y, r15.x, l(1.000000)
          movc r16.xyzw, r15.zzzz, r14.xyzw, r5.xyzw
          mov r17.xyz, r16.yzwy
        endif
        mov r17.w, cb3[r13.w + 341].y
        sample_l_indexable(texturecubearray)(float,float,float,float) r14.xyz, r17.xyzw, t8.xyzw, s8, r2.w
        sample_l_indexable(texturecubearray)(float,float,float,float) r15.xyzw, r17.xyzw, t9.xyzw, s8, r2.w
        sample_l_indexable(texturecubearray)(float,float,float,float) r16.yzw, r17.xyzw, t10.wxyz, s8, r2.w
        movc r17.w, r9.x, cb3[r13.w + 1023].y, l(0)
        movc r17.xyz, r9.xxxx, r14.xyzx, l(0,0,0,0)
        movc r14.w, r9.y, cb3[r13.w + 1023].z, l(0)
        movc r14.xyz, r9.yyyy, r15.xyzx, l(0,0,0,0)
        movc r15.x, r9.z, cb3[r13.w + 1023].w, l(0)
        movc r16.yzw, r9.zzzz, r16.yyzw, l(0,0,0,0)
        mad r14.xyzw, r14.xyzw, r11.xyzw, r17.xyzw
        mad r14.xyz, r16.yzwy, r12.xyzx, r14.xyzx
        mul r14.xyz, r14.xyzx, cb3[r13.w + 341].xxxx
        mul r14.xyz, r16.xxxx, r14.xyzx
        mad r13.xyz, r14.xyzx, r4.wwww, r13.xyzx
        mad r14.x, -r15.w, r16.x, l(1.000000)
        mul r4.w, r4.w, r14.x
        mad r14.x, r15.x, r3.w, r14.w
        add r14.y, -r16.x, l(1.000000)
        mul r13.w, r16.x, cb3[r13.w + 1023].x
        mad r10.w, r10.w, r14.y, r13.w
        mul r13.w, r16.x, r14.x
        mad r6.w, r13.w, r8.w, r6.w
        mul r8.w, r8.w, r14.y
      endif
      iadd r12.w, r12.w, l(1)
    endloop
    mul r11.xyz, r13.xyzx, cb0[165].xyzx
    mul r11.w, r6.w, cb0[165].w
    if_nz r4.z
      add r1.z, -r2.y, cb1[0].x
      add r1.z, r1.z, l(-1.000000)
      sample_l_indexable(texturecube)(float,float,float,float) r9.xyz, r5.yzwy, t6.xyzw, s6, r1.z
      ld_indexable(buffer)(uint,uint,uint,uint) r12.x, l(0, 0, 0, 0), t11.xyzw
      ld_indexable(buffer)(uint,uint,uint,uint) r12.y, l(1, 1, 1, 1), t11.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r12.z, l(2, 2, 2, 2), t11.yzxw
      mul r9.xyz, r9.xyzx, r12.xyzx
      lt r2.y, l(0.000000), cb1[0].w
      if_nz r2.y
        sample_l_indexable(texturecube)(float,float,float,float) r5.xyz, r5.yzwy, t7.xyzw, s7, r1.z
        mad r5.xyz, r5.xyzx, r12.xyzx, -r9.xyzx
        mad r9.xyz, cb1[0].wwww, r5.xyzx, r9.xyzx
      endif
      and r1.z, cb0[150].z, l(2048)
      movc r5.xyz, r1.zzzz, r9.xyzx, l(0,0,0,0)
      lt r1.z, cb1[0].z, l(1.000000)
      mad r12.xyz, r4.wwww, r5.xyzx, r11.xyzx
      mad r12.w, r3.w, r10.w, r11.w
      movc r5.xyz, r1.zzzz, l(0,0,0,0), r5.xyzx
      movc r11.xyzw, r1.zzzz, r12.xyzw, r11.xyzw
    else
      mov r5.xyz, l(0,0,0,0)
    endif
    mul r1.z, r1.w, cb0[165].w
    mad_sat r2.y, r0.z, cb0[187].x, cb0[187].y
    mad r2.w, r2.y, l(-2.000000), l(3.000000)
    mul r2.y, r2.y, r2.y
    mul r2.y, r2.y, r2.w
    max r2.w, r11.w, l(0.003000)
    div r1.z, r1.z, r2.w
    min r1.z, r1.z, cb0[187].z
    add r1.z, r1.z, l(-1.000000)
    mad r1.z, r2.y, r1.z, l(1.000000)
    mul r5.xyz, r4.wwww, r5.xyzx
    mad r5.xyz, r11.xyzx, r1.zzzz, r5.xyzx
  else
    mov r5.xyz, l(0,0,0,0)
  endif
  add r5.xyz, r5.xyzx, r10.xyzx
  if_nz r1.y
    mov r0.y, r0.z
    sample_l_indexable(texture2d)(float,float,float,float) r1.yz, r0.xyxx, t14.zxyw, s9, l(0.000000)
    mul_sat r0.y, r3.y, l(50.000000)
    mul r0.y, r0.y, r1.z
    add r1.z, -r4.x, l(1.000000)
    mul r0.y, r0.y, r1.z
    mad r9.xyz, r3.xyzx, r1.yyyy, r0.yyyy
    mul r9.xyz, r5.xyzx, r9.xyzx
    add r0.y, -r0.x, l(1.000000)
    mul r1.y, r0.y, r0.y
    mul r1.y, r1.y, r1.y
    mul r1.z, r0.y, r1.y
    mad r0.y, -r1.y, r0.y, l(1.000000)
    mad r0.y, r0.y, l(0.040000), r1.z
    mul r1.y, r4.x, r0.y
    mad r0.y, -r0.y, r4.x, l(1.000000)
    mul r8.xyz, r1.yyyy, r8.xyzx
    mad r8.xyz, r9.xyzx, r0.yyyy, r8.xyzx
    mul r0.y, r9.w, r1.y
    mul r0.y, r0.w, r0.y
    if_nz r2.z
      log r0.w, r4.y
      mad r0.w, -r0.w, l(1.200000), l(1.000000)
      add r1.y, cb0[185].z, l(-1.000000)
      add r1.y, -r0.w, r1.y
      mul r9.xyzw, cb0[153].xxxw, l(0.101321183, 0.101321183, 0.101321183, 0.318309873)
      ld_indexable(buffer)(uint,uint,uint,uint) r1.z, l(3, 3, 3, 3), t11.yzxw
      and r2.yzw, cb0[150].zzzz, l(0, 256, 512, 1024)
      ld_indexable(buffer)(uint,uint,uint,uint) r10.x, l(8, 8, 8, 8), t11.xyzw
      ld_indexable(buffer)(uint,uint,uint,uint) r10.y, l(9, 9, 9, 9), t11.yxzw
      ld_indexable(buffer)(uint,uint,uint,uint) r10.z, l(10, 10, 10, 10), t11.yzxw
      mov r7.x, l(0)
      mov r11.xyz, l(0,0,0,0)
      mov r3.w, r0.y
      mov r4.xw, l(0,0,0,1.000000)
      mov r5.w, l(1.000000)
      mov r6.w, l(0)
      loop
        uge r8.w, r6.w, r2.x
        breakc_nz r8.w
        lt r8.w, r3.w, l(0.001000)
        if_nz r8.w
          break
        endif
        iadd r8.w, r1.x, r6.w
        ld_indexable(buffer)(uint,uint,uint,uint) r8.w, r8.wwww, t13.yzwx
        add r12.xyz, r6.xyzx, -cb3[r8.w + 0].xyzx
        dp3 r10.w, r12.xyzx, r12.xyzx
        sqrt r11.w, r10.w
        lt r12.w, r11.w, cb3[r8.w + 0].w
        if_nz r12.w
          lt r12.w, l(0.000000), cb3[r8.w + 341].z
          if_nz r12.w
            ishl r12.w, r8.w, l(2)
            mul r13.xyz, r6.yyyy, cb3[r12.w + 1365].xyzx
            mad r13.xyz, r6.xxxx, cb3[r12.w + 1364].xyzx, r13.xyzx
            mad r13.xyz, r6.zzzz, cb3[r12.w + 1366].xyzx, r13.xyzx
            add r13.xyz, r13.xyzx, cb3[r12.w + 1367].xyzx
	  // mul r23.w, r23.x, r13.z
	  // mad r16.x, r23.w, r22.w, r16.x
            mul r14.xyz, r7.zzzz, cb3[r12.w + 1365].xyzx
            mad r14.xyz, r7.yyyy, cb3[r12.w + 1364].xyzx, r14.xyzx
            mad r14.xyz, r7.wwww, cb3[r12.w + 1366].xyzx, r14.xyzx
	  // mul r23.w, r23.x, r14.z
	  // mad r14.x, r23.w, r22.w, r14.x
            rcp r14.xyz, r14.xyzx
            mad r15.xyz, -r13.xyzx, r14.xyzx, -r14.xyzx
            mad r14.xyz, -r13.xyzx, r14.xyzx, r14.xyzx
            max r14.xyz, r14.xyzx, r15.xyzx
            min r12.w, r14.z, r14.y
            min r12.w, r12.w, r14.x
            mad r14.xyz, r12.wwww, r7.yzwy, r6.xyzx
            add r15.xyz, cb3[r8.w + 0].xyzx, cb3[r8.w + 682].xyzx
            add r14.xyz, r14.xyzx, -r15.xyzx
            mul r12.w, l(0.700000), cb3[r8.w + 2728].w
            mad r15.xyz, -cb3[r8.w + 2728].wwww, l(0.500000, 0.500000, 0.500000, 0.000000), cb3[r8.w + 2728].xyzx
            mul r16.xyz, r13.xyzx, cb3[r8.w + 2728].xyzx
            lt r17.xyz, r16.xyzx, -r15.xyzx
            mad r18.xyz, r13.xyzx, cb3[r8.w + 2728].xyzx, r15.xyzx
            mov r18.xyz, |r18.xyzx|
            and r17.xyz, r17.xyzx, r18.xyzx
            lt r16.xyz, r15.xyzx, r16.xyzx
            mad r13.xyz, r13.xyzx, cb3[r8.w + 2728].xyzx, -r15.xyzx
            mov r13.xyz, |r13.xyzx|
            and r13.xyz, r13.xyzx, r16.xyzx
            dp3 r13.w, r17.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
            dp3 r13.x, r13.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
            add r13.x, r13.x, r13.w
            div r12.w, l(1.000000, 1.000000, 1.000000, 1.000000), r12.w
            mul_sat r12.w, r12.w, r13.x
            mad r13.x, r12.w, l(-2.000000), l(3.000000)
            mul r12.w, r12.w, r12.w
            mad r13.x, -r13.x, r12.w, l(1.000000)
          else
            div_sat r11.w, r11.w, cb3[r8.w + 0].w
            dp3 r12.w, r7.yzwy, r12.xyzx
            mad r10.w, -cb3[r8.w + 0].w, cb3[r8.w + 0].w, r10.w
            mad r10.w, r12.w, r12.w, -r10.w
            ge r15.x, r10.w, l(0.000000)
            sqrt r10.w, r10.w
            add r10.w, -r12.w, r10.w
            mad r12.xyz, r10.wwww, r7.yzwy, r12.xyzx
            add r12.yzw, r12.xxyz, -cb3[r8.w + 682].xxyz
            mad r10.w, r11.w, l(2.500000), l(-1.500000)
            max r10.w, r10.w, l(0.000000)
            mul r11.w, r10.w, r10.w
            mad r10.w, -r10.w, l(2.000000), l(3.000000)
            mad r12.x, -r11.w, r10.w, l(1.000000)
            movc r13.xyzw, r15.xxxx, r12.xyzw, r7.xyzw
            mov r14.xyz, r13.yzwy
          endif
          mov r14.w, cb3[r8.w + 341].y
          sample_l_indexable(texturecubearray)(float,float,float,float) r12.xyz, r14.xyzw, t8.xyzw, s8, r1.y
          sample_l_indexable(texturecubearray)(float,float,float,float) r15.xyzw, r14.xyzw, t9.xyzw, s8, r1.y
          sample_l_indexable(texturecubearray)(float,float,float,float) r13.yzw, r14.xyzw, t10.wxyz, s8, r1.y
          movc r14.w, r2.y, cb3[r8.w + 1023].y, l(0)
          movc r14.xyz, r2.yyyy, r12.xyzx, l(0,0,0,0)
          movc r12.w, r2.z, cb3[r8.w + 1023].z, l(0)
          movc r12.xyz, r2.zzzz, r15.xyzx, l(0,0,0,0)
          movc r10.w, r2.w, cb3[r8.w + 1023].w, l(0)
          movc r13.yzw, r2.wwww, r13.yyzw, l(0,0,0,0)
          mad r12.xyzw, r12.xyzw, r9.xyzw, r14.xyzw
          mad r12.xyz, r13.yzwy, r10.xyzx, r12.xyzx
          mul r12.xyz, r12.xyzx, cb3[r8.w + 341].xxxx
          mul r12.xyz, r13.xxxx, r12.xyzx
          mad r11.xyz, r12.xyzx, r3.wwww, r11.xyzx
          mad r11.w, -r15.w, r13.x, l(1.000000)
          mul r3.w, r3.w, r11.w
          mad r10.w, r10.w, r1.z, r12.w
          add r11.w, -r13.x, l(1.000000)
          mul r8.w, r13.x, cb3[r8.w + 1023].x
          mad r5.w, r5.w, r11.w, r8.w
          mul r8.w, r13.x, r10.w
          mad r4.x, r8.w, r4.w, r4.x
          mul r4.w, r4.w, r11.w
        endif
        iadd r6.w, r6.w, l(1)
      endloop
      mul r2.xyz, r11.xyzx, cb0[165].xyzx
      mul r2.w, r4.x, cb0[165].w
      if_nz r4.z
        add r0.y, -r0.w, cb1[0].x
        add r0.y, r0.y, l(-1.000000)
        sample_l_indexable(texturecube)(float,float,float,float) r4.xzw, r7.yzwy, t6.xwyz, s6, r0.y
        ld_indexable(buffer)(uint,uint,uint,uint) r6.x, l(0, 0, 0, 0), t11.xyzw
        ld_indexable(buffer)(uint,uint,uint,uint) r6.y, l(1, 1, 1, 1), t11.yxzw
        ld_indexable(buffer)(uint,uint,uint,uint) r6.z, l(2, 2, 2, 2), t11.yzxw
        mul r4.xzw, r4.xxzw, r6.xxyz
        lt r0.w, l(0.000000), cb1[0].w
        if_nz r0.w
          sample_l_indexable(texturecube)(float,float,float,float) r7.xyz, r7.yzwy, t7.xyzw, s7, r0.y
          mad r6.xyz, r7.xyzx, r6.xyzx, -r4.xzwx
          mad r4.xzw, cb1[0].wwww, r6.xxyz, r4.xxzw
        endif
        and r0.y, cb0[150].z, l(2048)
        movc r4.xzw, r0.yyyy, r4.xxzw, l(0,0,0,0)
        lt r0.y, cb1[0].z, l(1.000000)
        mad r6.xyz, r3.wwww, r4.xzwx, r2.xyzx
        mad r6.w, r1.z, r5.w, r2.w
        movc r1.xyz, r0.yyyy, l(0,0,0,0), r4.xzwx
        movc r2.xyzw, r0.yyyy, r6.xyzw, r2.xyzw
      else
        mov r1.xyz, l(0,0,0,0)
      endif
      mul r0.y, r1.w, cb0[165].w
      mad_sat r0.w, r4.y, cb0[187].x, cb0[187].y
      mad r1.w, r0.w, l(-2.000000), l(3.000000)
      mul r0.w, r0.w, r0.w
      mul r0.w, r0.w, r1.w
      max r1.w, r2.w, l(0.003000)
      div r0.y, r0.y, r1.w
      min r0.y, r0.y, cb0[187].z
      add r0.y, r0.y, l(-1.000000)
      mad r0.y, r0.w, r0.y, l(1.000000)
      mul r1.xyz, r1.xyzx, r3.wwww
      mad r1.xyz, r2.xyzx, r0.yyyy, r1.xyzx
    else
      mov r1.xyz, l(0,0,0,0)
    endif
    add r1.xyz, r1.xyzx, r8.xyzx
  else
    sample_l_indexable(texture2d)(float,float,float,float) r0.xy, r0.xzxx, t14.xyzw, s9, l(0.000000)
    mul_sat r0.z, r3.y, l(50.000000)
    mul r0.y, r0.y, r0.z
    mad r0.xyz, r3.xyzx, r0.xxxx, r0.yyyy
    mul r1.xyz, r0.xyzx, r5.xyzx
  endif
  min r0.xyz, -r1.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
  mov r0.xyz, -r0.xyzx
else
  mov r0.xyz, l(0,0,0,0)
endif
mov o0.xyz, r0.xyzx
mov o0.w, l(0)
ret
// Approximately 0 instruction slots used
